// Copyright 2022 jeff.li. and/or its affiliates.

#pragma once

#include <tbir/pipeline/op_kernel.h>

namespace tbir::runtime {

    // const static char* VARIABLE_OP_NAME = "VariableOp";

    class Symbol;

    class VariableOp : public OpKernel {
    public:
        VariableOp() : OpKernel() {
            class_name_ = "VariableOp";
            name_ = "VariableOp_0";
        }

        static std::unique_ptr<Symbol> make_symbol(OpKernelPtr op, String name, runtime::RTValue data);

        RTValue Process(PyArgs inputs) const override {
            CheckArgs(inputs.size(), 1);
            return inputs[0].As<RTValue>();
        }
    };

}  // namespace tbir::runtime
